﻿using System;
using System.Collections;

namespace Queue类
{
	class Program
	{
		static void Main(string[] args)
		{
			//队列
			Queue queue = new Queue();
			//本质 Object[]
			//先进先出

			#region 增
			//和栈一样 只能一个一个加进去
			queue.Enqueue("123");
			queue.Enqueue(321);
			queue.Enqueue(1.23f);
			#endregion

			#region 取
			//队列不存在删
			//只能取先加入的对象
			object v = queue.Dequeue();
			Console.WriteLine(v);
			#endregion

			#region 查
			//查一样不会移除
			v = queue.Peek();
			Console.WriteLine(v);

			if (queue.Contains(321))
			{
				Console.WriteLine(321);
			}
			#endregion

			#region 改
			//队列只能进出无法通过索引改变
			queue.Clear();
			queue.Enqueue("1");
			queue.Enqueue("12");
			queue.Enqueue("123");
			#endregion

			#region 遍历
			//长度
			Console.WriteLine(queue.Count);
			//遍历
			foreach (object item in queue)
			{
				Console.WriteLine(item);
			}
			//转换栈成object数组
			object[] array = queue.ToArray();
			for (int i = 0; i < array.Length; i++)
			{
				Console.WriteLine(array[i]);
				//打印结果 1,12,123 转换过程也为先进先出
			}
			//循环出列 常用
			while (queue.Count > 0)
			{
				object o = queue.Dequeue();
				Console.WriteLine(o);
			}

			#endregion

		}
	}
}
